#ifndef MYPUSHBUTTON_H
#define MYPUSHBUTTON_H

#include <QPushButton>

// @formatter:off
class MyPushButton : public QPushButton
{
    Q_OBJECT
public:
    //explicit MyPushButton(QWidget *parent = nullptr);
    /**
     * 构造函数
     * @param normalImg 正常显示的图片路径
     * @param pressImg 按下后显示的图片路径
     */
    explicit MyPushButton(QString normalImg, QString pressImg = "");

    // 弹跳特效
    void zoom1();   // 向下跳
    void zoom2();   // 向上跳

    // 重写按钮 按下 和 释放 事件
    void mousePressEvent(QMouseEvent *e) override ;
    void mouseReleaseEvent(QMouseEvent *e) override ;

private:
    /**
     * 加载图片
     * @param pic 图片资源
     * @return
     */
    bool loadPicture(const QString &pic);

    /**
     * 动画
     * @param start 开始位置
     * @param end 结束位置
     * @param msecs 动画长度
     */
    void zoom(const QVariant &start, const QVariant &end, int msecs);

private:
    QString normalImgPath;  // 正常显示的图片路径
    QString pressImgPath;   // 按下后显示的图片路径

signals:

};
// @formatter:on

#endif // MYPUSHBUTTON_H
